﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using GAIA_Logica;
using System.ComponentModel;
using System.Data;

namespace GAIA_IU
{
    public partial class act_clientes_juridicos : System.Web.UI.Page
    {
        private List<Clientes> listaClientes = new List<Clientes>();
        private Clientes cliente = new Clientes();

        protected void Page_Load(object sender, EventArgs e)
        {

            bool login=Session["login"]!=null?Boolean.Parse(Session["login"].ToString()):false;

            if (login)
            {

                if (IsPostBack)
                {

                }
                else
                {
                    /*listaClientes = cliente.getAllClientes();
                    cargarDatos();*/
                }
            }
            else {

                Response.Redirect("Login.aspx");
            
            }
        }

        protected void btn_busqueda_Click(object sender, EventArgs e)
        {
            string param_option = tipo_busqueda.SelectedValue;
            string param = txt_busqueda.Text;
            Clientes clienTemp;
            try
            {
                switch (param_option)
                {
                    case "nombre":
                            listaClientes = cliente.buscarClienteXNombre(param, "J");                        
                        break;
                    case "id":
                        clienTemp = cliente.getCliente(param);
                        listaClientes.Add(clienTemp);
                        break;
                    case "codigo":
                        clienTemp = cliente.getClienteXCodigo(param);
                        listaClientes.Add(clienTemp);
                        break;
                }
                cargarDatos();
                /*xxxxx*/
            }
            catch (Exception ex) {
                Avisar("Error al buscar al cliente. Por favor intente nuevamente. (" + ex.Message + ")", false);
            }
            

        }

        protected void Avisar(string aviso, bool resultado)
        {
            aviso_label.Text = aviso;
            if (resultado)
            {
                aviso_label.CssClass = "_true";
            }
            else
            {
                aviso_label.CssClass = "_false";
            }

        }

        protected void ClearForm()
        {
            txt_apellido1Rep.Text = "";
            txt_apellido2Rep.Text = "";
            txt_id.Text = "";
            txt_nombre.Text = "";
            txt_cedRep.Text = "";
            txt_nombreRep.Text = "";
        }

        protected void cargarDatos(){

            GridView_Clientes.DataSource = listaClientes;
            GridView_Clientes.DataBind();
            Session["ListaDeClientes"] = listaClientes;
        }

        protected void gridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView_Clientes.DataSource = (List<Clientes>)Session["ListaDeClientes"];
            GridView_Clientes.PageIndex = e.NewPageIndex;
            GridView_Clientes.DataBind();
        }

        protected void GridView_Clientes_SelectedIndexChanged(object sender, EventArgs e)
        {
            txt_id.Text = (String)GridView_Clientes.SelectedDataKey.Values["Id"];
            txt_nombre.Text = (String)GridView_Clientes.SelectedDataKey.Values["Nombre"];
            txt_nombreRep.Text = (String)GridView_Clientes.SelectedDataKey.Values["NombreRep"];
            txt_apellido1Rep.Text = (String)GridView_Clientes.SelectedDataKey.Values["Ap1Rep"];
            txt_apellido2Rep.Text = (String)GridView_Clientes.SelectedDataKey.Values["Ap2Rep"];
            txt_cedRep.Text = (String)GridView_Clientes.SelectedDataKey.Values["CedRep"];
            hf_codigo.Value = (String)GridView_Clientes.SelectedDataKey.Values["Codigo"];
        }

        protected void btn_actualizar_Click(object sender, EventArgs e)
        {
            string id = txt_id.Text;
            string nombre = txt_nombre.Text;
            string nombre_rep = txt_nombreRep.Text;
            string apellido1_rep = txt_apellido1Rep.Text;
            string apellido2_rep = txt_apellido2Rep.Text;
            string ced_rep = txt_cedRep.Text;
            string codigo = hf_codigo.Value;

            try
            {
                cliente = new Clientes(nombre, id, nombre_rep, apellido1_rep, apellido2_rep, ced_rep);
                cliente.Codigo = codigo;
                cliente.actualizarCliente(codigo);
                ClearForm();
                Avisar("El cliente ha sido actualizado con éxito", true);

            }
            catch (Exception ex)
            {
                Avisar("Error al intentar actualizar el cliente " + codigo + ". Por favor intente nuevamente :(" + ex.Message + ")", false);
            }
        }

    }
}